前 K 个高频元素-中等

难度:中等

题目描述:
给定一个非空的整数数组,返回其中出现频率前  **_k _**高的元素。

示例:

输入: (nums = [1, 1, 1, 2, 2, 3]), (k = 2);
输出: [1, 2];
1
2


解题思路:

var topKFrequent = function (nums, k) {
  let i = 0;
  let obj = {};
  let arr = [];
  while (i < nums.length) {
    if (obj[nums[i]]) {
      obj[nums[i]] = obj[nums[i]] + 1;
    } else {
      obj[nums[i]] = 1;
      arr.push(nums[i]);
    }
    i++;
  }
  arr.sort((a, b) => {
    return obj[b] - obj[a];
  });
  return arr.splice(0, k);
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
最后更新时间: 6/1/2020, 9:43:41 PM